package com.one.group.service;

import com.mybatisflex.core.service.IService;
import com.one.group.model.dto.ComplaintManagementAddDto;
import com.one.group.model.dto.ComplaintManagementQueryDto;
import com.one.group.model.dto.ComplaintManagementUpdateDto;
import com.one.group.model.dto.UpdateComplaintStatusDto;
import com.one.group.model.entity.ComplaintManagement;
import com.one.group.model.vo.ComplaintManagementListVo;

import java.util.List;

/**
 * 投诉管理服务接口
 * @author
 * @date
 * @description
 */
public interface ComplaintManagementService extends IService<ComplaintManagement> {

    /**
     * 添加投诉记录
     * @param addDto 投诉添加参数
     * @return 是否成功
     */
    boolean addComplaintManagement(ComplaintManagementAddDto addDto);

    /**
     * 根据查询条件获取投诉列表
     * @param queryDto 查询条件
     * @return 投诉列表
     */
    List<ComplaintManagementListVo> findComplaintManagementByQueryDto(ComplaintManagementQueryDto queryDto);

    /**
     * 更新投诉记录
     * @param updateDto 更新参数
     * @return 是否成功
     */
    boolean updateComplaintManagement(ComplaintManagementUpdateDto updateDto);

    /**
     * 删除投诉记录
     * @param id 投诉ID
     * @return 是否成功
     */
    boolean deleteComplaintManagement(Long id);

    /**
     * 根据ID获取投诉详情
     * @param id 投诉ID
     * @return 投诉详情
     */
    ComplaintManagement getComplaintManagementById(Long id);
    
    /**
     * 受理投诉
     * @param updateComplaintStatusDto 更新状态参数
     * @return 是否成功
     */
    boolean acceptComplaint(UpdateComplaintStatusDto updateComplaintStatusDto);
}